[INFO] cloning repository https://github.com/sorunokoe/brief
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sorunokoe/brief" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsorunokoe%2Fbrief", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsorunokoe%2Fbrief'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ea5167f9e24aaf010424462811e4d368d990ffd7
[INFO] fixing sorunokoe/brief against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsorunokoe%2Fbrief" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/sorunokoe/brief
[INFO] finished tweaking git repo https://github.com/sorunokoe/brief
[INFO] tweaked toml for git repo https://github.com/sorunokoe/brief written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/sorunokoe/brief on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/sorunokoe/brief already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 6bad47f367200c8345b3b19a05350d1b350bfc5b95af92eab5783f90de532cb0
[INFO] running `Command { std: "docker" "start" "6bad47f367200c8345b3b19a05350d1b350bfc5b95af92eab5783f90de532cb0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6bad47f367200c8345b3b19a05350d1b350bfc5b95af92eab5783f90de532cb0" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6bad47f367200c8345b3b19a05350d1b350bfc5b95af92eab5783f90de532cb0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6bad47f367200c8345b3b19a05350d1b350bfc5b95af92eab5783f90de532cb0" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating briefc/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]     Checking rustls-pki-types v1.14.1
[INFO] [stderr]     Checking typenum v1.20.0
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking slab v0.4.12
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking yoke v0.8.2
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]    Compiling pin-project-internal v1.1.12
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]     Checking hashbrown v0.17.1
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]     Checking simd-adler32 v0.3.9
[INFO] [stderr]     Checking indexmap v2.14.0
[INFO] [stderr]     Checking pin-project v1.1.12
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]     Checking tokio v1.52.3
[INFO] [stderr]     Checking webpki-roots v1.0.7
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling logos-codegen v0.14.4
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking winnow v0.7.15
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking dashmap v5.5.3
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking webpki-roots v0.26.11
[INFO] [stderr]     Checking lsp-types v0.94.1
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking inotify v0.9.6
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling logos-derive v0.14.4
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking filetime v0.2.29
[INFO] [stderr]    Compiling auto_impl v1.3.0
[INFO] [stderr]    Compiling tower-lsp-macros v0.9.0
[INFO] [stderr]     Checking bitflags v2.11.1
[INFO] [stderr]     Checking colored v2.2.0
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking rustix v1.1.4
[INFO] [stderr]     Checking logos v0.14.4
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking notify v6.1.1
[INFO] [stderr]     Checking clap_complete v4.6.5
[INFO] [stderr]     Checking getrandom v0.4.2
[INFO] [stderr]     Checking glob v0.3.3
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking rustls-webpki v0.103.13
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking ureq v2.12.1
[INFO] [stderr]     Checking tower-lsp v0.20.0
[INFO] [stderr]     Checking briefc v1.0.0 (/opt/rustwide/workdir/briefc)
[INFO] [stderr]    Migrating briefc/src/main.rs from 2021 edition to 2024
[INFO] [stderr] error: errors present after applying fixes to crate `brief`
[INFO] [stderr]  --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/macros/mod.rs
[INFO] [stderr]  ::: briefc/src/fmt.rs
[INFO] [stderr]  ::: briefc/src/lexer.rs
[INFO] [stderr]  ::: briefc/src/parser.rs
[INFO] [stderr]   = cause: error: expected one of `(`, `,`, `::`, or `=`, found `+`
[INFO] [stderr]              --> briefc/src/lexer.rs:28:16
[INFO] [stderr]               |
[INFO] [stderr]            28 | #[derive(Logos + use<'s>, Debug, PartialEq, Clone)]
[INFO] [stderr]               |                ^ expected one of `(`, `,`, `::`, or `=`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `logos` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:29:3
[INFO] [stderr]               |
[INFO] [stderr]            29 | #[logos(skip r"[ \t\n\r]+")] // skip whitespace
[INFO] [stderr]               |   ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]               = note: `logos` is in scope, but it is a crate, not an attribute
[INFO] [stderr]            help: `logos` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:32:7
[INFO] [stderr]               |
[INFO] [stderr]            32 |     #[token("task")]     Task,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:33:7
[INFO] [stderr]               |
[INFO] [stderr]            33 |     #[token("step")]     Step,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:34:7
[INFO] [stderr]               |
[INFO] [stderr]            34 |     #[token("import")]   Import,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:35:7
[INFO] [stderr]               |
[INFO] [stderr]            35 |     #[token("skill")]    Skill,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:36:7
[INFO] [stderr]               |
[INFO] [stderr]            36 |     #[token("uses")]     Uses,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:37:7
[INFO] [stderr]               |
[INFO] [stderr]            37 |     #[token("perform")]  Perform,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:38:7
[INFO] [stderr]               |
[INFO] [stderr]            38 |     #[token("let")]      Let,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:39:7
[INFO] [stderr]               |
[INFO] [stderr]            39 |     #[token("sealed")]   Sealed,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:40:7
[INFO] [stderr]               |
[INFO] [stderr]            40 |     #[token("opaque")]   Opaque,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:41:7
[INFO] [stderr]               |
[INFO] [stderr]            41 |     #[token("type")]     Type,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:42:7
[INFO] [stderr]               |
[INFO] [stderr]            42 |     #[token("struct")]   Struct,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:43:7
[INFO] [stderr]               |
[INFO] [stderr]            43 |     #[token("protocol")] Protocol,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:44:7
[INFO] [stderr]               |
[INFO] [stderr]            44 |     #[token("effect")]   Effect,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:45:7
[INFO] [stderr]               |
[INFO] [stderr]            45 |     #[token("fn")]       Fn,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:46:7
[INFO] [stderr]               |
[INFO] [stderr]            46 |     #[token("async")]    Async,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:47:7
[INFO] [stderr]               |
[INFO] [stderr]            47 |     #[token("await")]    Await,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:48:7
[INFO] [stderr]               |
[INFO] [stderr]            48 |     #[token("return")]   Return,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:49:7
[INFO] [stderr]               |
[INFO] [stderr]            49 |     #[token("match")]    Match,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:50:7
[INFO] [stderr]               |
[INFO] [stderr]            50 |     #[token("test")]     Test,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `regex` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:54:7
[INFO] [stderr]               |
[INFO] [stderr]            54 |     #[regex(r#""([^"\\]|\\.)*""#, |lex| {
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `regex` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `regex` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:61:7
[INFO] [stderr]               |
[INFO] [stderr]            61 |     #[regex(r"-?[0-9]+", |lex| lex.slice().parse::<i64>().ok())]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `regex` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `regex` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:64:7
[INFO] [stderr]               |
[INFO] [stderr]            64 |     #[regex(r"//[^\n]*", |lex| lex.slice().to_string())]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `regex` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `regex` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:69:7
[INFO] [stderr]               |
[INFO] [stderr]            69 |     #[regex(r"[a-zA-Z_][a-zA-Z0-9_-]*", |lex| lex.slice().to_string())]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `regex` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:73:7
[INFO] [stderr]               |
[INFO] [stderr]            73 |     #[token("->")] Arrow,   // function return type
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:74:7
[INFO] [stderr]               |
[INFO] [stderr]            74 |     #[token("{")] LBrace,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:75:7
[INFO] [stderr]               |
[INFO] [stderr]            75 |     #[token("}")] RBrace,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:76:7
[INFO] [stderr]               |
[INFO] [stderr]            76 |     #[token("[")] LBracket,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:77:7
[INFO] [stderr]               |
[INFO] [stderr]            77 |     #[token("]")] RBracket,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:78:7
[INFO] [stderr]               |
[INFO] [stderr]            78 |     #[token("(")] LParen,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:79:7
[INFO] [stderr]               |
[INFO] [stderr]            79 |     #[token(")")] RParen,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:80:7
[INFO] [stderr]               |
[INFO] [stderr]            80 |     #[token("<")]  LAngle,  // generic type arguments
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:81:7
[INFO] [stderr]               |
[INFO] [stderr]            81 |     #[token(">")]  RAngle,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:82:7
[INFO] [stderr]               |
[INFO] [stderr]            82 |     #[token("|")]  Pipe,    // sealed type variant separator
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:83:7
[INFO] [stderr]               |
[INFO] [stderr]            83 |     #[token("@")]  At,      // decorator / attribute prefix
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:84:7
[INFO] [stderr]               |
[INFO] [stderr]            84 |     #[token(":")] Colon,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:85:7
[INFO] [stderr]               |
[INFO] [stderr]            85 |     #[token(",")] Comma,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:86:7
[INFO] [stderr]               |
[INFO] [stderr]            86 |     #[token(".")] Dot,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:87:7
[INFO] [stderr]               |
[INFO] [stderr]            87 |     #[token("=>")] FatArrow,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:88:7
[INFO] [stderr]               |
[INFO] [stderr]            88 |     #[token("=")] Eq,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:89:7
[INFO] [stderr]               |
[INFO] [stderr]            89 |     #[token("?")] Question,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:90:7
[INFO] [stderr]               |
[INFO] [stderr]            90 |     #[token(";")] Semi,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:91:7
[INFO] [stderr]               |
[INFO] [stderr]            91 |     #[token("*")] Star,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: no variant, associated function, or constant named `lexer` found for enum `lexer::Token` in the current scope
[INFO] [stderr]               --> briefc/src/fmt.rs:526:28
[INFO] [stderr]                |
[INFO] [stderr]            526 |     let mut lexer = Token::lexer(source);
[INFO] [stderr]                |                            ^^^^^ variant, associated function, or constant not found in `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]               ::: briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | -------------- variant, associated function, or constant `lexer` not found for this enum
[INFO] [stderr]                |
[INFO] [stderr]                = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stderr]                = note: the following trait defines an item `lexer`, perhaps you need to implement it:
[INFO] [stderr]                        candidate #1: `logos::Logos`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]              --> briefc/src/lexer.rs:97:5
[INFO] [stderr]               |
[INFO] [stderr]            95 | #[derive(Debug, Clone)]
[INFO] [stderr]               |          ----- in this derive macro expansion
[INFO] [stderr]            96 | pub struct Spanned {
[INFO] [stderr]            97 |     pub token: Token,
[INFO] [stderr]               |     ^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]               |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Debug)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `lexer::Token: Clone` is not satisfied
[INFO] [stderr]              --> briefc/src/lexer.rs:97:5
[INFO] [stderr]               |
[INFO] [stderr]            95 | #[derive(Debug, Clone)]
[INFO] [stderr]               |                 ----- in this derive macro expansion
[INFO] [stderr]            96 | pub struct Spanned {
[INFO] [stderr]            97 |     pub token: Token,
[INFO] [stderr]               |     ^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `lexer::Token`
[INFO] [stderr]               |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Clone)]`
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Clone)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: no variant, associated function, or constant named `lexer` found for enum `lexer::Token` in the current scope
[INFO] [stderr]               --> briefc/src/lexer.rs:107:28
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | -------------- variant, associated function, or constant `lexer` not found for this enum
[INFO] [stderr]            ...
[INFO] [stderr]            107 |     let mut lexer = Token::lexer(source);
[INFO] [stderr]                |                            ^^^^^ variant, associated function, or constant not found in `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]                = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stderr]                = note: the following trait defines an item `lexer`, perhaps you need to implement it:
[INFO] [stderr]                        candidate #1: `logos::Logos`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:129:45
[INFO] [stderr]                |
[INFO] [stderr]            129 |         assert!(toks.iter().any(|t| t.token == Token::Task));
[INFO] [stderr]                |                                     ------- ^^ ----------- lexer::Token
[INFO] [stderr]                |                                     |
[INFO] [stderr]                |                                     lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:137:9
[INFO] [stderr]                |
[INFO] [stderr]            137 |         assert_eq!(toks[0].token, Token::Str("hello world".to_string()));
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |         |
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:137:9
[INFO] [stderr]                |
[INFO] [stderr]            137 |         assert_eq!(toks[0].token, Token::Str("hello world".to_string()));
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:137:9
[INFO] [stderr]                |
[INFO] [stderr]            137 |         assert_eq!(toks[0].token, Token::Str("hello world".to_string()));
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:146:9
[INFO] [stderr]                |
[INFO] [stderr]            146 |         assert_eq!(toks[0].token, Token::At);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |         |
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:146:9
[INFO] [stderr]                |
[INFO] [stderr]            146 |         assert_eq!(toks[0].token, Token::At);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:146:9
[INFO] [stderr]                |
[INFO] [stderr]            146 |         assert_eq!(toks[0].token, Token::At);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:148:9
[INFO] [stderr]                |
[INFO] [stderr]            148 |         assert_eq!(toks[2].token, Token::Task);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |         |
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:148:9
[INFO] [stderr]                |
[INFO] [stderr]            148 |         assert_eq!(toks[2].token, Token::Task);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:148:9
[INFO] [stderr]                |
[INFO] [stderr]            148 |         assert_eq!(toks[2].token, Token::Task);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:156:9
[INFO] [stderr]                |
[INFO] [stderr]            156 |         assert_eq!(toks[0].token, Token::Sealed);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |         |
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:156:9
[INFO] [stderr]                |
[INFO] [stderr]            156 |         assert_eq!(toks[0].token, Token::Sealed);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:156:9
[INFO] [stderr]                |
[INFO] [stderr]            156 |         assert_eq!(toks[0].token, Token::Sealed);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:157:9
[INFO] [stderr]                |
[INFO] [stderr]            157 |         assert_eq!(toks[1].token, Token::Type);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |         |
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:157:9
[INFO] [stderr]                |
[INFO] [stderr]            157 |         assert_eq!(toks[1].token, Token::Type);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:157:9
[INFO] [stderr]                |
[INFO] [stderr]            157 |         assert_eq!(toks[1].token, Token::Type);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:159:45
[INFO] [stderr]                |
[INFO] [stderr]            159 |         assert!(toks.iter().any(|t| t.token == Token::Pipe));
[INFO] [stderr]                |                                     ------- ^^ ----------- lexer::Token
[INFO] [stderr]                |                                     |
[INFO] [stderr]                |                                     lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:167:9
[INFO] [stderr]                |
[INFO] [stderr]            167 |         assert_eq!(toks[0].token, Token::Opaque);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |         |
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:167:9
[INFO] [stderr]                |
[INFO] [stderr]            167 |         assert_eq!(toks[0].token, Token::Opaque);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:167:9
[INFO] [stderr]                |
[INFO] [stderr]            167 |         assert_eq!(toks[0].token, Token::Opaque);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:168:9
[INFO] [stderr]                |
[INFO] [stderr]            168 |         assert_eq!(toks[1].token, Token::Type);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |         |
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:168:9
[INFO] [stderr]                |
[INFO] [stderr]            168 |         assert_eq!(toks[1].token, Token::Type);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:168:9
[INFO] [stderr]                |
[INFO] [stderr]            168 |         assert_eq!(toks[1].token, Token::Type);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:177:9
[INFO] [stderr]                |
[INFO] [stderr]            177 |         assert_eq!(toks[0].token, Token::Fn);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |         |
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:177:9
[INFO] [stderr]                |
[INFO] [stderr]            177 |         assert_eq!(toks[0].token, Token::Fn);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:177:9
[INFO] [stderr]                |
[INFO] [stderr]            177 |         assert_eq!(toks[0].token, Token::Fn);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:178:9
[INFO] [stderr]                |
[INFO] [stderr]            178 |         assert_eq!(toks[toks.len()-1].token, Token::Ident("Result".to_string()));
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |         |
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:178:9
[INFO] [stderr]                |
[INFO] [stderr]            178 |         assert_eq!(toks[toks.len()-1].token, Token::Ident("Result".to_string()));
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:178:9
[INFO] [stderr]                |
[INFO] [stderr]            178 |         assert_eq!(toks[toks.len()-1].token, Token::Ident("Result".to_string()));
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:179:45
[INFO] [stderr]                |
[INFO] [stderr]            179 |         assert!(toks.iter().any(|t| t.token == Token::Arrow));
[INFO] [stderr]                |                                     ------- ^^ ------------ lexer::Token
[INFO] [stderr]                |                                     |
[INFO] [stderr]                |                                     lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:187:9
[INFO] [stderr]                |
[INFO] [stderr]            187 |         assert_eq!(toks[1].token, Token::LAngle);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |         |
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:187:9
[INFO] [stderr]                |
[INFO] [stderr]            187 |         assert_eq!(toks[1].token, Token::LAngle);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:187:9
[INFO] [stderr]                |
[INFO] [stderr]            187 |         assert_eq!(toks[1].token, Token::LAngle);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:188:9
[INFO] [stderr]                |
[INFO] [stderr]            188 |         assert_eq!(toks[toks.len()-1].token, Token::RAngle);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |         |
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:188:9
[INFO] [stderr]                |
[INFO] [stderr]            188 |         assert_eq!(toks[toks.len()-1].token, Token::RAngle);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:188:9
[INFO] [stderr]                |
[INFO] [stderr]            188 |         assert_eq!(toks[toks.len()-1].token, Token::RAngle);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:195:9
[INFO] [stderr]                |
[INFO] [stderr]            195 |         assert_eq!(toks[0].token, Token::Int(0));
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |         |
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:195:9
[INFO] [stderr]                |
[INFO] [stderr]            195 |         assert_eq!(toks[0].token, Token::Int(0));
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:195:9
[INFO] [stderr]                |
[INFO] [stderr]            195 |         assert_eq!(toks[0].token, Token::Int(0));
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:196:9
[INFO] [stderr]                |
[INFO] [stderr]            196 |         assert_eq!(toks[1].token, Token::Int(100));
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |         |
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:196:9
[INFO] [stderr]                |
[INFO] [stderr]            196 |         assert_eq!(toks[1].token, Token::Int(100));
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:196:9
[INFO] [stderr]                |
[INFO] [stderr]            196 |         assert_eq!(toks[1].token, Token::Int(100));
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:197:9
[INFO] [stderr]                |
[INFO] [stderr]            197 |         assert_eq!(toks[2].token, Token::Int(-42));
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |         |
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:197:9
[INFO] [stderr]                |
[INFO] [stderr]            197 |         assert_eq!(toks[2].token, Token::Int(-42));
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:197:9
[INFO] [stderr]                |
[INFO] [stderr]            197 |         assert_eq!(toks[2].token, Token::Int(-42));
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:204:9
[INFO] [stderr]                |
[INFO] [stderr]            204 |         assert_eq!(toks[0].token, Token::Match);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |         |
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:204:9
[INFO] [stderr]                |
[INFO] [stderr]            204 |         assert_eq!(toks[0].token, Token::Match);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:204:9
[INFO] [stderr]                |
[INFO] [stderr]            204 |         assert_eq!(toks[0].token, Token::Match);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:205:45
[INFO] [stderr]                |
[INFO] [stderr]            205 |         assert!(toks.iter().any(|t| t.token == Token::FatArrow));
[INFO] [stderr]                |                                     ------- ^^ --------------- lexer::Token
[INFO] [stderr]                |                                     |
[INFO] [stderr]                |                                     lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: no variant, associated function, or constant named `lexer` found for enum `lexer::Token` in the current scope
[INFO] [stderr]               --> briefc/src/lexer.rs:211:32
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | -------------- variant, associated function, or constant `lexer` not found for this enum
[INFO] [stderr]            ...
[INFO] [stderr]            211 |         let mut lexer = Token::lexer("// keep me\ntask");
[INFO] [stderr]                |                                ^^^^^ variant, associated function, or constant not found in `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]                = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stderr]                = note: the following trait defines an item `lexer`, perhaps you need to implement it:
[INFO] [stderr]                        candidate #1: `logos::Logos`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:212:9
[INFO] [stderr]                |
[INFO] [stderr]            212 |         assert_eq!(lexer.next(), Some(Ok(Token::LineComment("// keep me".to_string()))));
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:221:9
[INFO] [stderr]                |
[INFO] [stderr]            221 |         assert_eq!(toks[0].token, Token::Task);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]                |         |
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |         lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:221:9
[INFO] [stderr]                |
[INFO] [stderr]            221 |         assert_eq!(toks[0].token, Token::Task);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/lexer.rs:221:9
[INFO] [stderr]                |
[INFO] [stderr]            221 |         assert_eq!(toks[0].token, Token::Task);
[INFO] [stderr]                |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]              --> briefc/src/parser.rs:84:24
[INFO] [stderr]               |
[INFO] [stderr]            84 |         if self.peek() == Some(expected) {
[INFO] [stderr]               |            ----------- ^^ -------------- std::option::Option<&lexer::Token>
[INFO] [stderr]               |            |
[INFO] [stderr]               |            std::option::Option<&lexer::Token>
[INFO] [stderr]               |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]              --> briefc/src/lexer.rs:30:1
[INFO] [stderr]               |
[INFO] [stderr]            30 | pub enum Token {
[INFO] [stderr]               | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]              --> briefc/src/lexer.rs:30:1
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(PartialEq)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `lexer::Token: Clone` is not satisfied
[INFO] [stderr]              --> briefc/src/parser.rs:88:35
[INFO] [stderr]               |
[INFO] [stderr]            88 |             let got = self.peek().cloned();
[INFO] [stderr]               |                                   ^^^^^^ the trait `Clone` is not implemented for `lexer::Token`
[INFO] [stderr]               |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]              --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Clone)]`
[INFO] [stderr]              --> briefc/src/lexer.rs:30:1
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Clone)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]              --> briefc/src/parser.rs:92:45
[INFO] [stderr]               |
[INFO] [stderr]            92 |                 message: format!("expected `{expected:?}`, got `{got:?}`"),
[INFO] [stderr]               |                                             ^^^^^^^^^^^^ `lexer::Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]               |
[INFO] [stderr]               = help: the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]               = note: required for `&lexer::Token` to implement `Debug`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]              --> briefc/src/lexer.rs:30:1
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Debug)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `lexer::Token: Clone` is not satisfied
[INFO] [stderr]               --> briefc/src/parser.rs:102:27
[INFO] [stderr]                |
[INFO] [stderr]            102 |         match self.peek().cloned() {
[INFO] [stderr]                |                           ^^^^^^ the trait `Clone` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Clone)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Clone)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/parser.rs:111:65
[INFO] [stderr]                |
[INFO] [stderr]            111 |                     message: format!("expected identifier, got `{got:?}`"),
[INFO] [stderr]                |                                                                 ^^^^^^^ `lexer::Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                |
[INFO] [stderr]                = help: the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]                = note: required for `std::option::Option<lexer::Token>` to implement `Debug`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `lexer::Token: Clone` is not satisfied
[INFO] [stderr]               --> briefc/src/parser.rs:122:27
[INFO] [stderr]                |
[INFO] [stderr]            122 |         match self.peek().cloned() {
[INFO] [stderr]                |                           ^^^^^^ the trait `Clone` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Clone)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Clone)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/parser.rs:131:69
[INFO] [stderr]                |
[INFO] [stderr]            131 |                     message: format!("expected string literal, got `{got:?}`"),
[INFO] [stderr]                |                                                                     ^^^^^^^ `lexer::Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                |
[INFO] [stderr]                = help: the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]                = note: required for `std::option::Option<lexer::Token>` to implement `Debug`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `lexer::Token: Clone` is not satisfied
[INFO] [stderr]               --> briefc/src/parser.rs:145:38
[INFO] [stderr]                |
[INFO] [stderr]            145 |         let name = match self.peek().cloned() {
[INFO] [stderr]                |                                      ^^^^^^ the trait `Clone` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Clone)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Clone)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:168:27
[INFO] [stderr]                |
[INFO] [stderr]            168 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                |               ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `lexer::Token`
[INFO] [stderr]               --> briefc/src/parser.rs:174:30
[INFO] [stderr]                |
[INFO] [stderr]            174 |             if spanned.token == Token::Comma {
[INFO] [stderr]                |                ------------- ^^ ------------ lexer::Token
[INFO] [stderr]                |                |
[INFO] [stderr]                |                lexer::Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `lexer::Token: Clone` is not satisfied
[INFO] [stderr]               --> briefc/src/parser.rs:286:43
[INFO] [stderr]                |
[INFO] [stderr]            286 |                     let got = self.peek().cloned();
[INFO] [stderr]                |                                           ^^^^^^ the trait `Clone` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Clone)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Clone)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/parser.rs:289:61
[INFO] [stderr]                |
[INFO] [stderr]            289 |                         message: format!("unexpected token `{got:?}` at top level"),
[INFO] [stderr]                |                                                             ^^^^^^^ `lexer::Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                |
[INFO] [stderr]                = help: the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]                = note: required for `std::option::Option<lexer::Token>` to implement `Debug`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:348:24
[INFO] [stderr]                |
[INFO] [stderr]            348 |         if self.peek() != Some(&Token::Eq) {
[INFO] [stderr]                |            ----------- ^^ ---------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |            |
[INFO] [stderr]                |            std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:371:24
[INFO] [stderr]                |
[INFO] [stderr]            371 |         if self.peek() == Some(&Token::LBracket) {
[INFO] [stderr]                |            ----------- ^^ ---------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |            |
[INFO] [stderr]                |            std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:374:31
[INFO] [stderr]                |
[INFO] [stderr]            374 |             while self.peek() != Some(&Token::RBracket) && !self.at_end() {
[INFO] [stderr]                |                   ----------- ^^ ---------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |                   |
[INFO] [stderr]                |                   std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:378:32
[INFO] [stderr]                |
[INFO] [stderr]            378 |                 if self.peek() == Some(&Token::Comma) {
[INFO] [stderr]                |                    ----------- ^^ ------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |                    |
[INFO] [stderr]                |                    std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:393:27
[INFO] [stderr]                |
[INFO] [stderr]            393 |         while self.peek() == Some(&Token::At) {
[INFO] [stderr]                |               ----------- ^^ ---------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:421:34
[INFO] [stderr]                |
[INFO] [stderr]            421 |         let arg = if self.peek() == Some(&Token::LParen) {
[INFO] [stderr]                |                      ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |                      |
[INFO] [stderr]                |                      std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:443:34
[INFO] [stderr]                |
[INFO] [stderr]            443 |         let arg = if self.peek() == Some(&Token::LParen) {
[INFO] [stderr]                |                      ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |                      |
[INFO] [stderr]                |                      std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:467:35
[INFO] [stderr]                |
[INFO] [stderr]            467 |         let args = if self.peek() == Some(&Token::LAngle) {
[INFO] [stderr]                |                       ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |                       |
[INFO] [stderr]                |                       std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:470:31
[INFO] [stderr]                |
[INFO] [stderr]            470 |             while self.peek() != Some(&Token::RAngle) && !self.at_end() {
[INFO] [stderr]                |                   ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |                   |
[INFO] [stderr]                |                   std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:474:32
[INFO] [stderr]                |
[INFO] [stderr]            474 |                 if self.peek() == Some(&Token::Comma) {
[INFO] [stderr]                |                    ----------- ^^ ------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |                    |
[INFO] [stderr]                |                    std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:485:39
[INFO] [stderr]                |
[INFO] [stderr]            485 |         let optional = if self.peek() == Some(&Token::Question) {
[INFO] [stderr]                |                           ----------- ^^ ---------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |                           |
[INFO] [stderr]                |                           std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:503:24
[INFO] [stderr]                |
[INFO] [stderr]            503 |         if self.peek() != Some(&Token::LAngle) {
[INFO] [stderr]                |            ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |            |
[INFO] [stderr]                |            std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:508:27
[INFO] [stderr]                |
[INFO] [stderr]            508 |         while self.peek() != Some(&Token::RAngle) && !self.at_end() {
[INFO] [stderr]                |               ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:512:28
[INFO] [stderr]                |
[INFO] [stderr]            512 |             if self.peek() == Some(&Token::Comma) {
[INFO] [stderr]                |                ----------- ^^ ------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |                |
[INFO] [stderr]                |                std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:533:27
[INFO] [stderr]                |
[INFO] [stderr]            533 |         while self.peek() == Some(&Token::At) {
[INFO] [stderr]                |               ----------- ^^ ---------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:553:27
[INFO] [stderr]                |
[INFO] [stderr]            553 |         while self.peek() != Some(&Token::RParen) && !self.at_end() {
[INFO] [stderr]                |               ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:557:28
[INFO] [stderr]                |
[INFO] [stderr]            557 |             if self.peek() == Some(&Token::Comma) {
[INFO] [stderr]                |                ----------- ^^ ------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |                |
[INFO] [stderr]                |                std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:568:27
[INFO] [stderr]                |
[INFO] [stderr]            568 |         while self.peek() == Some(&Token::At) {
[INFO] [stderr]                |               ----------- ^^ ---------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:576:27
[INFO] [stderr]                |
[INFO] [stderr]            576 |         while self.peek() == Some(&Token::At) {
[INFO] [stderr]                |               ----------- ^^ ---------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:619:28
[INFO] [stderr]                |
[INFO] [stderr]            619 |             if self.peek() == Some(&Token::Pipe) {
[INFO] [stderr]                |                ----------- ^^ ------------------ std::option::Option<&lexer::Token>
[INFO] [stderr]                |                |
[INFO] [stderr]                |                std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:638:37
[INFO] [stderr]                |
[INFO] [stderr]            638 |         let fields = if self.peek() == Some(&Token::LParen) {
[INFO] [stderr]                |                         ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |                         |
[INFO] [stderr]                |                         std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:641:31
[INFO] [stderr]                |
[INFO] [stderr]            641 |             while self.peek() != Some(&Token::RParen) && !self.at_end() {
[INFO] [stderr]                |                   ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |                   |
[INFO] [stderr]                |                   std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:645:32
[INFO] [stderr]                |
[INFO] [stderr]            645 |                 if self.peek() == Some(&Token::Comma) {
[INFO] [stderr]                |                    ----------- ^^ ------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |                    |
[INFO] [stderr]                |                    std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:672:27
[INFO] [stderr]                |
[INFO] [stderr]            672 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                |               ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:677:54
[INFO] [stderr]                |
[INFO] [stderr]            677 |             if self.pos == pos_before && self.peek() != Some(&Token::RBrace) {
[INFO] [stderr]                |                                          ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |                                          |
[INFO] [stderr]                |                                          std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:698:27
[INFO] [stderr]                |
[INFO] [stderr]            698 |         while self.peek() == Some(&Token::At) {
[INFO] [stderr]                |               ----------- ^^ ---------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:724:27
[INFO] [stderr]                |
[INFO] [stderr]            724 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                |               ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:729:54
[INFO] [stderr]                |
[INFO] [stderr]            729 |             if self.pos == pos_before && self.peek() != Some(&Token::RBrace) {
[INFO] [stderr]                |                                          ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |                                          |
[INFO] [stderr]                |                                          std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:754:27
[INFO] [stderr]                |
[INFO] [stderr]            754 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                |               ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:759:54
[INFO] [stderr]                |
[INFO] [stderr]            759 |             if self.pos == pos_before && self.peek() != Some(&Token::RBrace) {
[INFO] [stderr]                |                                          ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |                                          |
[INFO] [stderr]                |                                          std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:779:27
[INFO] [stderr]                |
[INFO] [stderr]            779 |         while self.peek() != Some(&Token::RBracket) && !self.at_end() {
[INFO] [stderr]                |               ----------- ^^ ---------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:783:28
[INFO] [stderr]                |
[INFO] [stderr]            783 |             if self.peek() == Some(&Token::Comma) {
[INFO] [stderr]                |                ----------- ^^ ------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |                |
[INFO] [stderr]                |                std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:792:24
[INFO] [stderr]                |
[INFO] [stderr]            792 |         if self.peek() == Some(&Token::Step) {
[INFO] [stderr]                |            ----------- ^^ ------------------ std::option::Option<&lexer::Token>
[INFO] [stderr]                |            |
[INFO] [stderr]                |            std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:802:27
[INFO] [stderr]                |
[INFO] [stderr]            802 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                |               ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:804:28
[INFO] [stderr]                |
[INFO] [stderr]            804 |             if self.peek() == Some(&Token::Comma) {
[INFO] [stderr]                |                ----------- ^^ ------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |                |
[INFO] [stderr]                |                std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `lexer::Token: Clone` is not satisfied
[INFO] [stderr]               --> briefc/src/parser.rs:820:39
[INFO] [stderr]                |
[INFO] [stderr]            820 |         let count = match self.peek().cloned() {
[INFO] [stderr]                |                                       ^^^^^^ the trait `Clone` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Clone)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Clone)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/parser.rs:829:87
[INFO] [stderr]                |
[INFO] [stderr]            829 |                     message: format!("expected non-negative integer retry count, got `{got:?}`"),
[INFO] [stderr]                |                                                                                       ^^^^^^^ `lexer::Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                |
[INFO] [stderr]                = help: the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]                = note: required for `std::option::Option<lexer::Token>` to implement `Debug`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:853:27
[INFO] [stderr]                |
[INFO] [stderr]            853 |         while self.peek() == Some(&Token::At) {
[INFO] [stderr]                |               ----------- ^^ ---------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `lexer::Token: Clone` is not satisfied
[INFO] [stderr]               --> briefc/src/parser.rs:866:27
[INFO] [stderr]                |
[INFO] [stderr]            866 |         match self.peek().cloned() {
[INFO] [stderr]                |                           ^^^^^^ the trait `Clone` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Clone)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Clone)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/parser.rs:874:76
[INFO] [stderr]                |
[INFO] [stderr]            874 |                     message: format!("expected `TaskBrief` after `:`, got `{got:?}`"),
[INFO] [stderr]                |                                                                            ^^^^^^^ `lexer::Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                |
[INFO] [stderr]                = help: the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]                = note: required for `std::option::Option<lexer::Token>` to implement `Debug`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:884:35
[INFO] [stderr]                |
[INFO] [stderr]            884 |         let uses = if self.peek() == Some(&Token::Uses) {
[INFO] [stderr]                |                       ----------- ^^ ------------------ std::option::Option<&lexer::Token>
[INFO] [stderr]                |                       |
[INFO] [stderr]                |                       std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:905:27
[INFO] [stderr]                |
[INFO] [stderr]            905 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                |               ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&lexer::Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `lexer::Token: Clone` is not satisfied
[INFO] [stderr]               --> briefc/src/parser.rs:907:31
[INFO] [stderr]                |
[INFO] [stderr]            907 |             match self.peek().cloned() {
[INFO] [stderr]                |                               ^^^^^^ the trait `Clone` is not implemented for `lexer::Token`
[INFO] [stderr]                |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Clone)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Clone)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/parser.rs:940:93
[INFO] [stderr]                |
[INFO] [stderr]            940 | ...                   message: format!("expected `=` or `{{` after `extras`, got `{got:?}`"),
[INFO] [stderr]                |                                                                                   ^^^^^^^ `lexer::Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                |
[INFO] [stderr]                = help: the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]                = note: required for `&lexer::Token` to implement `Debug`
[INFO] [stderr]                = note: 1 redundant requirement hidden
[INFO] [stderr]                = note: required for `std::option::Option<&lexer::Token>` to implement `Debug`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/parser.rs:959:88
[INFO] [stderr]                |
[INFO] [stderr]            959 | ...                   message: format!("expected `{{` after `provides`, got `{got:?}`"),
[INFO] [stderr]                |                                                                              ^^^^^^^ `lexer::Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                |
[INFO] [stderr]                = help: the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]                = note: required for `&lexer::Token` to implement `Debug`
[INFO] [stderr]                = note: 1 redundant requirement hidden
[INFO] [stderr]                = note: required for `std::option::Option<&lexer::Token>` to implement `Debug`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]                --> briefc/src/parser.rs:1011:61
[INFO] [stderr]                 |
[INFO] [stderr]            1011 |                         message: format!("unexpected token `{got:?}` inside task body"),
[INFO] [stderr]                 |                                                             ^^^^^^^ `lexer::Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                 |
[INFO] [stderr]                 = help: the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]                 = note: required for `std::option::Option<lexer::Token>` to implement `Debug`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Debug)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1019:54
[INFO] [stderr]                 |
[INFO] [stderr]            1019 |             if self.pos == pos_before && self.peek() != Some(&Token::RBrace) {
[INFO] [stderr]                 |                                          ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |                                          |
[INFO] [stderr]                 |                                          std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1054:27
[INFO] [stderr]                 |
[INFO] [stderr]            1054 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                 |               ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `lexer::Token: Clone` is not satisfied
[INFO] [stderr]                --> briefc/src/parser.rs:1056:31
[INFO] [stderr]                 |
[INFO] [stderr]            1056 |             match self.peek().cloned() {
[INFO] [stderr]                 |                               ^^^^^^ the trait `Clone` is not implemented for `lexer::Token`
[INFO] [stderr]                 |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Clone)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Clone)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1077:28
[INFO] [stderr]                 |
[INFO] [stderr]            1077 |             if self.peek() == Some(&Token::Comma) { self.advance(); }
[INFO] [stderr]                 |                ----------- ^^ ------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |                |
[INFO] [stderr]                 |                std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1091:27
[INFO] [stderr]                 |
[INFO] [stderr]            1091 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                 |               ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `lexer::Token: Clone` is not satisfied
[INFO] [stderr]                --> briefc/src/parser.rs:1093:31
[INFO] [stderr]                 |
[INFO] [stderr]            1093 |             match self.peek().cloned() {
[INFO] [stderr]                 |                               ^^^^^^ the trait `Clone` is not implemented for `lexer::Token`
[INFO] [stderr]                 |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Clone)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Clone)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1108:28
[INFO] [stderr]                 |
[INFO] [stderr]            1108 |             if self.peek() == Some(&Token::Comma) { self.advance(); }
[INFO] [stderr]                 |                ----------- ^^ ------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |                |
[INFO] [stderr]                 |                std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1122:27
[INFO] [stderr]                 |
[INFO] [stderr]            1122 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                 |               ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `lexer::Token: Clone` is not satisfied
[INFO] [stderr]                --> briefc/src/parser.rs:1126:43
[INFO] [stderr]                 |
[INFO] [stderr]            1126 |             let skill = match self.peek().cloned() {
[INFO] [stderr]                 |                                           ^^^^^^ the trait `Clone` is not implemented for `lexer::Token`
[INFO] [stderr]                 |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Clone)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Clone)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1132:28
[INFO] [stderr]                 |
[INFO] [stderr]            1132 |             if self.peek() != Some(&Token::Dot) {
[INFO] [stderr]                 |                ----------- ^^ ----------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |                |
[INFO] [stderr]                 |                std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `lexer::Token: Clone` is not satisfied
[INFO] [stderr]                --> briefc/src/parser.rs:1138:42
[INFO] [stderr]                 |
[INFO] [stderr]            1138 |             let func = match self.peek().cloned() {
[INFO] [stderr]                 |                                          ^^^^^^ the trait `Clone` is not implemented for `lexer::Token`
[INFO] [stderr]                 |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Clone)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Clone)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1157:28
[INFO] [stderr]                 |
[INFO] [stderr]            1157 |             if self.peek() == Some(&Token::LParen) {
[INFO] [stderr]                 |                ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |                |
[INFO] [stderr]                 |                std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1159:35
[INFO] [stderr]                 |
[INFO] [stderr]            1159 |                 while self.peek() != Some(&Token::RParen) && !self.at_end() {
[INFO] [stderr]                 |                       ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |                       |
[INFO] [stderr]                 |                       std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `lexer::Token: Clone` is not satisfied
[INFO] [stderr]                --> briefc/src/parser.rs:1161:49
[INFO] [stderr]                 |
[INFO] [stderr]            1161 |                     let key = match self.peek().cloned() {
[INFO] [stderr]                 |                                                 ^^^^^^ the trait `Clone` is not implemented for `lexer::Token`
[INFO] [stderr]                 |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Clone)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Clone)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1165:36
[INFO] [stderr]                 |
[INFO] [stderr]            1165 |                     if self.peek() != Some(&Token::Eq) {
[INFO] [stderr]                 |                        ----------- ^^ ---------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |                        |
[INFO] [stderr]                 |                        std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `lexer::Token: Clone` is not satisfied
[INFO] [stderr]                --> briefc/src/parser.rs:1171:49
[INFO] [stderr]                 |
[INFO] [stderr]            1171 |                     let pat = match self.peek().cloned() {
[INFO] [stderr]                 |                                                 ^^^^^^ the trait `Clone` is not implemented for `lexer::Token`
[INFO] [stderr]                 |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Clone)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Clone)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1202:36
[INFO] [stderr]                 |
[INFO] [stderr]            1202 |                     if self.peek() == Some(&Token::Comma) { self.advance(); }
[INFO] [stderr]                 |                        ----------- ^^ ------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |                        |
[INFO] [stderr]                 |                        std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1210:28
[INFO] [stderr]                 |
[INFO] [stderr]            1210 |             if self.peek() == Some(&Token::Comma) { self.advance(); }
[INFO] [stderr]                 |                ----------- ^^ ------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |                |
[INFO] [stderr]                 |                std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1224:27
[INFO] [stderr]                 |
[INFO] [stderr]            1224 |         while self.peek() != Some(&Token::RBracket) && !self.at_end() {
[INFO] [stderr]                 |               ----------- ^^ ---------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1237:28
[INFO] [stderr]                 |
[INFO] [stderr]            1237 |             if self.peek() == Some(&Token::Comma) {
[INFO] [stderr]                 |                ----------- ^^ ------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |                |
[INFO] [stderr]                 |                std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1254:27
[INFO] [stderr]                 |
[INFO] [stderr]            1254 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                 |               ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1272:28
[INFO] [stderr]                 |
[INFO] [stderr]            1272 |             if self.peek() == Some(&Token::Comma) {
[INFO] [stderr]                 |                ----------- ^^ ------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |                |
[INFO] [stderr]                 |                std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1316:40
[INFO] [stderr]                 |
[INFO] [stderr]            1316 |                         if self.peek() == Some(&Token::Semi) {
[INFO] [stderr]                 |                            ----------- ^^ ------------------ std::option::Option<&lexer::Token>
[INFO] [stderr]                 |                            |
[INFO] [stderr]                 |                            std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1336:40
[INFO] [stderr]                 |
[INFO] [stderr]            1336 |                         if self.peek() == Some(&Token::Semi) {
[INFO] [stderr]                 |                            ----------- ^^ ------------------ std::option::Option<&lexer::Token>
[INFO] [stderr]                 |                            |
[INFO] [stderr]                 |                            std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1381:27
[INFO] [stderr]                 |
[INFO] [stderr]            1381 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                 |               ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1409:27
[INFO] [stderr]                 |
[INFO] [stderr]            1409 |         while self.peek() == Some(&Token::At) {
[INFO] [stderr]                 |               ----------- ^^ ---------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `lexer::Token: Clone` is not satisfied
[INFO] [stderr]                --> briefc/src/parser.rs:1415:27
[INFO] [stderr]                 |
[INFO] [stderr]            1415 |         match self.peek().cloned() {
[INFO] [stderr]                 |                           ^^^^^^ the trait `Clone` is not implemented for `lexer::Token`
[INFO] [stderr]                 |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Clone)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Clone)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `lexer::Token: Clone` is not satisfied
[INFO] [stderr]                --> briefc/src/parser.rs:1445:27
[INFO] [stderr]                 |
[INFO] [stderr]            1445 |         match self.peek().cloned() {
[INFO] [stderr]                 |                           ^^^^^^ the trait `Clone` is not implemented for `lexer::Token`
[INFO] [stderr]                 |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Clone)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Clone)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1452:32
[INFO] [stderr]                 |
[INFO] [stderr]            1452 |                 if self.peek() == Some(&Token::LParen) {
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]   --> briefc/src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | mod gen;
[INFO] [stdout]    |     ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout]    = note: `--force-warn keyword-idents-2024` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |                    ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> briefc/src/main.rs:407:22
[INFO] [stdout]     |
[INFO] [stdout] 407 |             let ok = gen::gen(&description, output.as_deref(), force);
[INFO] [stdout]     |                      ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |                    |
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> briefc/src/main.rs:407:27
[INFO] [stdout]     |
[INFO] [stdout] 407 |             let ok = gen::gen(&description, output.as_deref(), force);
[INFO] [stdout]     |                           ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |                    std::option::Option<&lexer::Token>
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]   --> briefc/src/gen.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn gen(description: &str, output: Option<&Path>, force: bool) -> bool {
[INFO] [stdout]    |        ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |
[INFO] [stdout] warning: cannot explicitly borrow within an implicitly-borrowing pattern in Rust 2024
[INFO] [stdout]     --> briefc/src/parser.rs:1938:85
[INFO] [stdout]      |
[INFO] [stdout] 1938 | ...xpr::Call { receiver: Some(ref receiver), func, args, .. } if receiver == "user" && func == "name" && args.is_empty()));
[INFO] [stdout]      |                               ^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]      |
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]     --> briefc/src/parser.rs:1938:57
[INFO] [stdout]      |
[INFO] [stdout] 1938 | ...(), Expr::Call { receiver: Some(ref receiver), func, args, .. } if receiver == "user" && func == "name" && args.is_empty()));
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this non-reference pattern matches on a reference type `&_`
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/match-ergonomics.html>
[INFO] [stdout]      = note: `--force-warn rust-2024-incompatible-pat` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: remove the unnecessary binding modifier
[INFO] [stdout]      |
[INFO] [stdout] 1938 -                 assert!(matches!(arms[0].body.as_ref(), Expr::Call { receiver: Some(ref receiver), func, args, .. } if receiver == "user" && func == "name" && args.is_empty()));
[INFO] [stdout] 1938 +                 assert!(matches!(arms[0].body.as_ref(), Expr::Call { receiver: Some(receiver), func, args, .. } if receiver == "user" && func == "name" && args.is_empty()));
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stdout] warning: `impl logos::internal::CallbackResult<'s, std::string::String, lexer::Token>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> briefc/src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos, Debug, PartialEq, Clone)]
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> briefc/src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos, Debug, PartialEq, Clone)]
[INFO] [stdout]    |          ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]    = note: this warning originates in the derive macro `Logos` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos + use<'s>, Debug, PartialEq, Clone)]
[INFO] [stdout]    |                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stdout] warning: `impl logos::internal::CallbackResult<'s, std::string::String, lexer::Token>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> briefc/src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos, Debug, PartialEq, Clone)]
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> briefc/src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos, Debug, PartialEq, Clone)]
[INFO] [stdout]    |          ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the derive macro `Logos` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos + use<'s>, Debug, PartialEq, Clone)]
[INFO] [stdout]    |                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |
[INFO] [stdout] warning: `impl logos::internal::CallbackResult<'s, i64, lexer::Token>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> briefc/src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos, Debug, PartialEq, Clone)]
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> briefc/src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos, Debug, PartialEq, Clone)]
[INFO] [stdout]    |          ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the derive macro `Logos` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos + use<'s>, Debug, PartialEq, Clone)]
[INFO] [stdout]    |                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stdout] warning: `impl logos::internal::CallbackResult<'s, std::string::String, lexer::Token>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> briefc/src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos, Debug, PartialEq, Clone)]
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> briefc/src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos, Debug, PartialEq, Clone)]
[INFO] [stdout]    |          ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the derive macro `Logos` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos + use<'s>, Debug, PartialEq, Clone)]
[INFO] [stdout]    |                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout] warning: `impl logos::internal::CallbackResult<'s, std::string::String, lexer::Token>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> briefc/src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos, Debug, PartialEq, Clone)]
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> briefc/src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos, Debug, PartialEq, Clone)]
[INFO] [stdout]    |          ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the derive macro `Logos` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos + use<'s>, Debug, PartialEq, Clone)]
[INFO] [stdout]    |                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]                --> briefc/src/parser.rs:1465:68
[INFO] [stderr]                 |
[INFO] [stderr]            1465 |                     message: format!("expected match pattern, got `{got:?}`"),
[INFO] [stderr]                 |                                                                    ^^^^^^^ `lexer::Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                 |
[INFO] [stderr]                 = help: the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]                 = note: required for `std::option::Option<lexer::Token>` to implement `Debug`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Debug)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1480:27
[INFO] [stderr]                 |
[INFO] [stderr]            1480 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                 |               ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `lexer::Token: Clone` is not satisfied
[INFO] [stderr]                --> briefc/src/parser.rs:1522:27
[INFO] [stderr]                 |
[INFO] [stderr]            1522 |         match self.peek().cloned() {
[INFO] [stderr]                 |                           ^^^^^^ the trait `Clone` is not implemented for `lexer::Token`
[INFO] [stderr]                 |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Clone)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Clone)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1533:32
[INFO] [stderr]                 |
[INFO] [stderr]            1533 |                 if self.peek() == Some(&Token::LAngle) {
[INFO] [stderr]                 |                    ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |                    |
[INFO] [stderr]                 |                    std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1535:39
[INFO] [stderr]                 |
[INFO] [stderr]            1535 |                     while self.peek() != Some(&Token::RAngle) && !self.at_end() {
[INFO] [stderr]                 |                           ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |                           |
[INFO] [stderr]                 |                           std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1543:48
[INFO] [stderr]                 |
[INFO] [stderr]            1543 |                 let propagate = if self.peek() == Some(&Token::Question) {
[INFO] [stderr]                 |                                    ----------- ^^ ---------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |                                    |
[INFO] [stderr]                 |                                    std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1574:32
[INFO] [stderr]                 |
[INFO] [stderr]            1574 |                 if self.peek() == Some(&Token::Dot) {
[INFO] [stderr]                 |                    ----------- ^^ ----------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |                    |
[INFO] [stderr]                 |                    std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1588:47
[INFO] [stderr]                 |
[INFO] [stderr]            1588 |                     let args = if self.peek() == Some(&Token::LParen) {
[INFO] [stderr]                 |                                   ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |                                   |
[INFO] [stderr]                 |                                   std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1603:39
[INFO] [stderr]                 |
[INFO] [stderr]            1603 |                 } else if self.peek() == Some(&Token::LParen) {
[INFO] [stderr]                 |                           ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |                           |
[INFO] [stderr]                 |                           std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `lexer::Token` doesn't implement `Debug`
[INFO] [stderr]                --> briefc/src/parser.rs:1647:65
[INFO] [stderr]                 |
[INFO] [stderr]            1647 |                     message: format!("expected expression, got `{got:?}`"),
[INFO] [stderr]                 |                                                                 ^^^^^^^ `lexer::Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                 |
[INFO] [stderr]                 = help: the trait `Debug` is not implemented for `lexer::Token`
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]                 = note: required for `std::option::Option<lexer::Token>` to implement `Debug`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(Debug)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Debug)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1660:27
[INFO] [stderr]                 |
[INFO] [stderr]            1660 |         while self.peek() != Some(&Token::RParen) && !self.at_end() {
[INFO] [stderr]                 |               ----------- ^^ -------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&lexer::Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1663:28
[INFO] [stderr]                 |
[INFO] [stderr]            1663 |             if self.peek() == Some(&Token::Comma) {
[INFO] [stderr]                 |                ----------- ^^ ------------------- std::option::Option<&lexer::Token>
[INFO] [stderr]                 |                |
[INFO] [stderr]                 |                std::option::Option<&lexer::Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `lexer::Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `lexer::Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 201 previous errors
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            Some errors have detailed explanations: E0277, E0369, E0599.
[INFO] [stderr]            
[INFO] [stderr]            For more information about an error, try `rustc --explain E0277`.
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stderr] error: errors present after applying fixes to crate `brief`
[INFO] [stderr]  --> briefc/src/fmt.rs
[INFO] [stderr]  ::: briefc/src/lexer.rs
[INFO] [stderr]  ::: briefc/src/parser.rs
[INFO] [stderr]   = cause: error: expected one of `(`, `,`, `::`, or `=`, found `+`
[INFO] [stderr]              --> briefc/src/lexer.rs:28:16
[INFO] [stderr]               |
[INFO] [stderr]            28 | #[derive(Logos + use<'s>, Debug, PartialEq, Clone)]
[INFO] [stderr]               |                ^ expected one of `(`, `,`, `::`, or `=`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `logos` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:29:3
[INFO] [stderr]               |
[INFO] [stderr]            29 | #[logos(skip r"[ \t\n\r]+")] // skip whitespace
[INFO] [stderr]               |   ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]               = note: `logos` is in scope, but it is a crate, not an attribute
[INFO] [stderr]            help: `logos` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:32:7
[INFO] [stderr]               |
[INFO] [stderr]            32 |     #[token("task")]     Task,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:33:7
[INFO] [stderr]               |
[INFO] [stderr]            33 |     #[token("step")]     Step,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:34:7
[INFO] [stderr]               |
[INFO] [stderr]            34 |     #[token("import")]   Import,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:35:7
[INFO] [stderr]               |
[INFO] [stderr]            35 |     #[token("skill")]    Skill,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:36:7
[INFO] [stderr]               |
[INFO] [stderr]            36 |     #[token("uses")]     Uses,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:37:7
[INFO] [stderr]               |
[INFO] [stderr]            37 |     #[token("perform")]  Perform,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:38:7
[INFO] [stderr]               |
[INFO] [stderr]            38 |     #[token("let")]      Let,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:39:7
[INFO] [stderr]               |
[INFO] [stderr]            39 |     #[token("sealed")]   Sealed,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:40:7
[INFO] [stderr]               |
[INFO] [stderr]            40 |     #[token("opaque")]   Opaque,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:41:7
[INFO] [stderr]               |
[INFO] [stderr]            41 |     #[token("type")]     Type,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:42:7
[INFO] [stderr]               |
[INFO] [stderr]            42 |     #[token("struct")]   Struct,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:43:7
[INFO] [stderr]               |
[INFO] [stderr]            43 |     #[token("protocol")] Protocol,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:44:7
[INFO] [stderr]               |
[INFO] [stderr]            44 |     #[token("effect")]   Effect,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:45:7
[INFO] [stderr]               |
[INFO] [stderr]            45 |     #[token("fn")]       Fn,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:46:7
[INFO] [stderr]               |
[INFO] [stderr]            46 |     #[token("async")]    Async,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:47:7
[INFO] [stderr]               |
[INFO] [stderr]            47 |     #[token("await")]    Await,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:48:7
[INFO] [stderr]               |
[INFO] [stderr]            48 |     #[token("return")]   Return,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:49:7
[INFO] [stderr]               |
[INFO] [stderr]            49 |     #[token("match")]    Match,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:50:7
[INFO] [stderr]               |
[INFO] [stderr]            50 |     #[token("test")]     Test,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `regex` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:54:7
[INFO] [stderr]               |
[INFO] [stderr]            54 |     #[regex(r#""([^"\\]|\\.)*""#, |lex| {
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `regex` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `regex` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:61:7
[INFO] [stderr]               |
[INFO] [stderr]            61 |     #[regex(r"-?[0-9]+", |lex| lex.slice().parse::<i64>().ok())]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `regex` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `regex` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:64:7
[INFO] [stderr]               |
[INFO] [stderr]            64 |     #[regex(r"//[^\n]*", |lex| lex.slice().to_string())]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `regex` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `regex` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:69:7
[INFO] [stderr]               |
[INFO] [stderr]            69 |     #[regex(r"[a-zA-Z_][a-zA-Z0-9_-]*", |lex| lex.slice().to_string())]
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `regex` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:73:7
[INFO] [stderr]               |
[INFO] [stderr]            73 |     #[token("->")] Arrow,   // function return type
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:74:7
[INFO] [stderr]               |
[INFO] [stderr]            74 |     #[token("{")] LBrace,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:75:7
[INFO] [stderr]               |
[INFO] [stderr]            75 |     #[token("}")] RBrace,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:76:7
[INFO] [stderr]               |
[INFO] [stderr]            76 |     #[token("[")] LBracket,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:77:7
[INFO] [stderr]               |
[INFO] [stderr]            77 |     #[token("]")] RBracket,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:78:7
[INFO] [stderr]               |
[INFO] [stderr]            78 |     #[token("(")] LParen,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:79:7
[INFO] [stderr]               |
[INFO] [stderr]            79 |     #[token(")")] RParen,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:80:7
[INFO] [stderr]               |
[INFO] [stderr]            80 |     #[token("<")]  LAngle,  // generic type arguments
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:81:7
[INFO] [stderr]               |
[INFO] [stderr]            81 |     #[token(">")]  RAngle,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:82:7
[INFO] [stderr]               |
[INFO] [stderr]            82 |     #[token("|")]  Pipe,    // sealed type variant separator
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:83:7
[INFO] [stderr]               |
[INFO] [stderr]            83 |     #[token("@")]  At,      // decorator / attribute prefix
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:84:7
[INFO] [stderr]               |
[INFO] [stderr]            84 |     #[token(":")] Colon,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:85:7
[INFO] [stderr]               |
[INFO] [stderr]            85 |     #[token(",")] Comma,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:86:7
[INFO] [stderr]               |
[INFO] [stderr]            86 |     #[token(".")] Dot,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:87:7
[INFO] [stderr]               |
[INFO] [stderr]            87 |     #[token("=>")] FatArrow,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:88:7
[INFO] [stderr]               |
[INFO] [stderr]            88 |     #[token("=")] Eq,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:89:7
[INFO] [stderr]               |
[INFO] [stderr]            89 |     #[token("?")] Question,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:90:7
[INFO] [stderr]               |
[INFO] [stderr]            90 |     #[token(";")] Semi,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: cannot find attribute `token` in this scope
[INFO] [stderr]              --> briefc/src/lexer.rs:91:7
[INFO] [stderr]               |
[INFO] [stderr]            91 |     #[token("*")] Star,
[INFO] [stderr]               |       ^^^^^
[INFO] [stderr]               |
[INFO] [stderr]            help: `token` is an attribute that can be used by the derive macro `Logos`, you might be missing a `derive` attribute
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Logos)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: no variant, associated function, or constant named `lexer` found for enum `Token` in the current scope
[INFO] [stderr]               --> briefc/src/fmt.rs:526:28
[INFO] [stderr]                |
[INFO] [stderr]            526 |     let mut lexer = Token::lexer(source);
[INFO] [stderr]                |                            ^^^^^ variant, associated function, or constant not found in `Token`
[INFO] [stderr]                |
[INFO] [stderr]               ::: briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | -------------- variant, associated function, or constant `lexer` not found for this enum
[INFO] [stderr]                |
[INFO] [stderr]                = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stderr]                = note: the following trait defines an item `lexer`, perhaps you need to implement it:
[INFO] [stderr]                        candidate #1: `Logos`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `Token` doesn't implement `Debug`
[INFO] [stderr]              --> briefc/src/lexer.rs:97:5
[INFO] [stderr]               |
[INFO] [stderr]            95 | #[derive(Debug, Clone)]
[INFO] [stderr]               |          ----- in this derive macro expansion
[INFO] [stderr]            96 | pub struct Spanned {
[INFO] [stderr]            97 |     pub token: Token,
[INFO] [stderr]               |     ^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `Token`
[INFO] [stderr]               |
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Debug)]`
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Debug)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token: Clone` is not satisfied
[INFO] [stderr]              --> briefc/src/lexer.rs:97:5
[INFO] [stderr]               |
[INFO] [stderr]            95 | #[derive(Debug, Clone)]
[INFO] [stderr]               |                 ----- in this derive macro expansion
[INFO] [stderr]            96 | pub struct Spanned {
[INFO] [stderr]            97 |     pub token: Token,
[INFO] [stderr]               |     ^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `Token`
[INFO] [stderr]               |
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Clone)]`
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Clone)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: no variant, associated function, or constant named `lexer` found for enum `Token` in the current scope
[INFO] [stderr]               --> briefc/src/lexer.rs:107:28
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | -------------- variant, associated function, or constant `lexer` not found for this enum
[INFO] [stderr]            ...
[INFO] [stderr]            107 |     let mut lexer = Token::lexer(source);
[INFO] [stderr]                |                            ^^^^^ variant, associated function, or constant not found in `Token`
[INFO] [stderr]                |
[INFO] [stderr]                = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stderr]                = note: the following trait defines an item `lexer`, perhaps you need to implement it:
[INFO] [stderr]                        candidate #1: `Logos`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]              --> briefc/src/parser.rs:84:24
[INFO] [stderr]               |
[INFO] [stderr]            84 |         if self.peek() == Some(expected) {
[INFO] [stderr]               |            ----------- ^^ -------------- std::option::Option<&Token>
[INFO] [stderr]               |            |
[INFO] [stderr]               |            std::option::Option<&Token>
[INFO] [stderr]               |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]              --> briefc/src/lexer.rs:30:1
[INFO] [stderr]               |
[INFO] [stderr]            30 | pub enum Token {
[INFO] [stderr]               | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]              --> briefc/src/lexer.rs:30:1
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(PartialEq)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token: Clone` is not satisfied
[INFO] [stderr]              --> briefc/src/parser.rs:88:35
[INFO] [stderr]               |
[INFO] [stderr]            88 |             let got = self.peek().cloned();
[INFO] [stderr]               |                                   ^^^^^^ the trait `Clone` is not implemented for `Token`
[INFO] [stderr]               |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]              --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Clone)]`
[INFO] [stderr]              --> briefc/src/lexer.rs:30:1
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Clone)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `Token` doesn't implement `Debug`
[INFO] [stderr]              --> briefc/src/parser.rs:92:45
[INFO] [stderr]               |
[INFO] [stderr]            92 |                 message: format!("expected `{expected:?}`, got `{got:?}`"),
[INFO] [stderr]               |                                             ^^^^^^^^^^^^ `Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]               |
[INFO] [stderr]               = help: the trait `Debug` is not implemented for `Token`
[INFO] [stderr]               = note: required for `&Token` to implement `Debug`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Debug)]`
[INFO] [stderr]              --> briefc/src/lexer.rs:30:1
[INFO] [stderr]               |
[INFO] [stderr]            30 + #[derive(Debug)]
[INFO] [stderr]            31 | pub enum Token {
[INFO] [stderr]               |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token: Clone` is not satisfied
[INFO] [stderr]               --> briefc/src/parser.rs:102:27
[INFO] [stderr]                |
[INFO] [stderr]            102 |         match self.peek().cloned() {
[INFO] [stderr]                |                           ^^^^^^ the trait `Clone` is not implemented for `Token`
[INFO] [stderr]                |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Clone)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Clone)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/parser.rs:111:65
[INFO] [stderr]                |
[INFO] [stderr]            111 |                     message: format!("expected identifier, got `{got:?}`"),
[INFO] [stderr]                |                                                                 ^^^^^^^ `Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                |
[INFO] [stderr]                = help: the trait `Debug` is not implemented for `Token`
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]                = note: required for `std::option::Option<Token>` to implement `Debug`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Debug)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token: Clone` is not satisfied
[INFO] [stderr]               --> briefc/src/parser.rs:122:27
[INFO] [stderr]                |
[INFO] [stderr]            122 |         match self.peek().cloned() {
[INFO] [stderr]                |                           ^^^^^^ the trait `Clone` is not implemented for `Token`
[INFO] [stderr]                |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Clone)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Clone)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/parser.rs:131:69
[INFO] [stderr]                |
[INFO] [stderr]            131 |                     message: format!("expected string literal, got `{got:?}`"),
[INFO] [stderr]                |                                                                     ^^^^^^^ `Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                |
[INFO] [stderr]                = help: the trait `Debug` is not implemented for `Token`
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]                = note: required for `std::option::Option<Token>` to implement `Debug`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Debug)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token: Clone` is not satisfied
[INFO] [stderr]               --> briefc/src/parser.rs:145:38
[INFO] [stderr]                |
[INFO] [stderr]            145 |         let name = match self.peek().cloned() {
[INFO] [stderr]                |                                      ^^^^^^ the trait `Clone` is not implemented for `Token`
[INFO] [stderr]                |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Clone)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Clone)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:168:27
[INFO] [stderr]                |
[INFO] [stderr]            168 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                |               ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `Token`
[INFO] [stderr]               --> briefc/src/parser.rs:174:30
[INFO] [stderr]                |
[INFO] [stderr]            174 |             if spanned.token == Token::Comma {
[INFO] [stderr]                |                ------------- ^^ ------------ Token
[INFO] [stderr]                |                |
[INFO] [stderr]                |                Token
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token: Clone` is not satisfied
[INFO] [stderr]               --> briefc/src/parser.rs:286:43
[INFO] [stderr]                |
[INFO] [stderr]            286 |                     let got = self.peek().cloned();
[INFO] [stderr]                |                                           ^^^^^^ the trait `Clone` is not implemented for `Token`
[INFO] [stderr]                |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Clone)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Clone)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/parser.rs:289:61
[INFO] [stderr]                |
[INFO] [stderr]            289 |                         message: format!("unexpected token `{got:?}` at top level"),
[INFO] [stderr]                |                                                             ^^^^^^^ `Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                |
[INFO] [stderr]                = help: the trait `Debug` is not implemented for `Token`
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]                = note: required for `std::option::Option<Token>` to implement `Debug`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Debug)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:348:24
[INFO] [stderr]                |
[INFO] [stderr]            348 |         if self.peek() != Some(&Token::Eq) {
[INFO] [stderr]                |            ----------- ^^ ---------------- std::option::Option<&Token>
[INFO] [stderr]                |            |
[INFO] [stderr]                |            std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:371:24
[INFO] [stderr]                |
[INFO] [stderr]            371 |         if self.peek() == Some(&Token::LBracket) {
[INFO] [stderr]                |            ----------- ^^ ---------------------- std::option::Option<&Token>
[INFO] [stderr]                |            |
[INFO] [stderr]                |            std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:374:31
[INFO] [stderr]                |
[INFO] [stderr]            374 |             while self.peek() != Some(&Token::RBracket) && !self.at_end() {
[INFO] [stderr]                |                   ----------- ^^ ---------------------- std::option::Option<&Token>
[INFO] [stderr]                |                   |
[INFO] [stderr]                |                   std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:378:32
[INFO] [stderr]                |
[INFO] [stderr]            378 |                 if self.peek() == Some(&Token::Comma) {
[INFO] [stderr]                |                    ----------- ^^ ------------------- std::option::Option<&Token>
[INFO] [stderr]                |                    |
[INFO] [stderr]                |                    std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:393:27
[INFO] [stderr]                |
[INFO] [stderr]            393 |         while self.peek() == Some(&Token::At) {
[INFO] [stderr]                |               ----------- ^^ ---------------- std::option::Option<&Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:421:34
[INFO] [stderr]                |
[INFO] [stderr]            421 |         let arg = if self.peek() == Some(&Token::LParen) {
[INFO] [stderr]                |                      ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                |                      |
[INFO] [stderr]                |                      std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:443:34
[INFO] [stderr]                |
[INFO] [stderr]            443 |         let arg = if self.peek() == Some(&Token::LParen) {
[INFO] [stderr]                |                      ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                |                      |
[INFO] [stderr]                |                      std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:467:35
[INFO] [stderr]                |
[INFO] [stderr]            467 |         let args = if self.peek() == Some(&Token::LAngle) {
[INFO] [stderr]                |                       ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                |                       |
[INFO] [stderr]                |                       std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:470:31
[INFO] [stderr]                |
[INFO] [stderr]            470 |             while self.peek() != Some(&Token::RAngle) && !self.at_end() {
[INFO] [stderr]                |                   ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                |                   |
[INFO] [stderr]                |                   std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:474:32
[INFO] [stderr]                |
[INFO] [stderr]            474 |                 if self.peek() == Some(&Token::Comma) {
[INFO] [stderr]                |                    ----------- ^^ ------------------- std::option::Option<&Token>
[INFO] [stderr]                |                    |
[INFO] [stderr]                |                    std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:485:39
[INFO] [stderr]                |
[INFO] [stderr]            485 |         let optional = if self.peek() == Some(&Token::Question) {
[INFO] [stderr]                |                           ----------- ^^ ---------------------- std::option::Option<&Token>
[INFO] [stderr]                |                           |
[INFO] [stderr]                |                           std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:503:24
[INFO] [stderr]                |
[INFO] [stderr]            503 |         if self.peek() != Some(&Token::LAngle) {
[INFO] [stderr]                |            ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                |            |
[INFO] [stderr]                |            std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:508:27
[INFO] [stderr]                |
[INFO] [stderr]            508 |         while self.peek() != Some(&Token::RAngle) && !self.at_end() {
[INFO] [stderr]                |               ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:512:28
[INFO] [stderr]                |
[INFO] [stderr]            512 |             if self.peek() == Some(&Token::Comma) {
[INFO] [stderr]                |                ----------- ^^ ------------------- std::option::Option<&Token>
[INFO] [stderr]                |                |
[INFO] [stderr]                |                std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:533:27
[INFO] [stderr]                |
[INFO] [stderr]            533 |         while self.peek() == Some(&Token::At) {
[INFO] [stderr]                |               ----------- ^^ ---------------- std::option::Option<&Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:553:27
[INFO] [stderr]                |
[INFO] [stderr]            553 |         while self.peek() != Some(&Token::RParen) && !self.at_end() {
[INFO] [stderr]                |               ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:557:28
[INFO] [stderr]                |
[INFO] [stderr]            557 |             if self.peek() == Some(&Token::Comma) {
[INFO] [stderr]                |                ----------- ^^ ------------------- std::option::Option<&Token>
[INFO] [stderr]                |                |
[INFO] [stderr]                |                std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:568:27
[INFO] [stderr]                |
[INFO] [stderr]            568 |         while self.peek() == Some(&Token::At) {
[INFO] [stderr]                |               ----------- ^^ ---------------- std::option::Option<&Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:576:27
[INFO] [stderr]                |
[INFO] [stderr]            576 |         while self.peek() == Some(&Token::At) {
[INFO] [stderr]                |               ----------- ^^ ---------------- std::option::Option<&Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:619:28
[INFO] [stderr]                |
[INFO] [stderr]            619 |             if self.peek() == Some(&Token::Pipe) {
[INFO] [stderr]                |                ----------- ^^ ------------------ std::option::Option<&Token>
[INFO] [stderr]                |                |
[INFO] [stderr]                |                std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:638:37
[INFO] [stderr]                |
[INFO] [stderr]            638 |         let fields = if self.peek() == Some(&Token::LParen) {
[INFO] [stderr]                |                         ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                |                         |
[INFO] [stderr]                |                         std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:641:31
[INFO] [stderr]                |
[INFO] [stderr]            641 |             while self.peek() != Some(&Token::RParen) && !self.at_end() {
[INFO] [stderr]                |                   ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                |                   |
[INFO] [stderr]                |                   std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:645:32
[INFO] [stderr]                |
[INFO] [stderr]            645 |                 if self.peek() == Some(&Token::Comma) {
[INFO] [stderr]                |                    ----------- ^^ ------------------- std::option::Option<&Token>
[INFO] [stderr]                |                    |
[INFO] [stderr]                |                    std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:672:27
[INFO] [stderr]                |
[INFO] [stderr]            672 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                |               ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:677:54
[INFO] [stderr]                |
[INFO] [stderr]            677 |             if self.pos == pos_before && self.peek() != Some(&Token::RBrace) {
[INFO] [stderr]                |                                          ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                |                                          |
[INFO] [stderr]                |                                          std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:698:27
[INFO] [stderr]                |
[INFO] [stderr]            698 |         while self.peek() == Some(&Token::At) {
[INFO] [stderr]                |               ----------- ^^ ---------------- std::option::Option<&Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:724:27
[INFO] [stderr]                |
[INFO] [stderr]            724 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                |               ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:729:54
[INFO] [stderr]                |
[INFO] [stderr]            729 |             if self.pos == pos_before && self.peek() != Some(&Token::RBrace) {
[INFO] [stderr]                |                                          ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                |                                          |
[INFO] [stderr]                |                                          std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:754:27
[INFO] [stderr]                |
[INFO] [stderr]            754 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                |               ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:759:54
[INFO] [stderr]                |
[INFO] [stderr]            759 |             if self.pos == pos_before && self.peek() != Some(&Token::RBrace) {
[INFO] [stderr]                |                                          ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                |                                          |
[INFO] [stderr]                |                                          std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:779:27
[INFO] [stderr]                |
[INFO] [stderr]            779 |         while self.peek() != Some(&Token::RBracket) && !self.at_end() {
[INFO] [stderr]                |               ----------- ^^ ---------------------- std::option::Option<&Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:783:28
[INFO] [stderr]                |
[INFO] [stderr]            783 |             if self.peek() == Some(&Token::Comma) {
[INFO] [stderr]                |                ----------- ^^ ------------------- std::option::Option<&Token>
[INFO] [stderr]                |                |
[INFO] [stderr]                |                std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:792:24
[INFO] [stderr]                |
[INFO] [stderr]            792 |         if self.peek() == Some(&Token::Step) {
[INFO] [stderr]                |            ----------- ^^ ------------------ std::option::Option<&Token>
[INFO] [stderr]                |            |
[INFO] [stderr]                |            std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:802:27
[INFO] [stderr]                |
[INFO] [stderr]            802 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                |               ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:804:28
[INFO] [stderr]                |
[INFO] [stderr]            804 |             if self.peek() == Some(&Token::Comma) {
[INFO] [stderr]                |                ----------- ^^ ------------------- std::option::Option<&Token>
[INFO] [stderr]                |                |
[INFO] [stderr]                |                std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token: Clone` is not satisfied
[INFO] [stderr]               --> briefc/src/parser.rs:820:39
[INFO] [stderr]                |
[INFO] [stderr]            820 |         let count = match self.peek().cloned() {
[INFO] [stderr]                |                                       ^^^^^^ the trait `Clone` is not implemented for `Token`
[INFO] [stderr]                |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Clone)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Clone)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/parser.rs:829:87
[INFO] [stderr]                |
[INFO] [stderr]            829 |                     message: format!("expected non-negative integer retry count, got `{got:?}`"),
[INFO] [stderr]                |                                                                                       ^^^^^^^ `Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                |
[INFO] [stderr]                = help: the trait `Debug` is not implemented for `Token`
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]                = note: required for `std::option::Option<Token>` to implement `Debug`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Debug)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:853:27
[INFO] [stderr]                |
[INFO] [stderr]            853 |         while self.peek() == Some(&Token::At) {
[INFO] [stderr]                |               ----------- ^^ ---------------- std::option::Option<&Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token: Clone` is not satisfied
[INFO] [stderr]               --> briefc/src/parser.rs:866:27
[INFO] [stderr]                |
[INFO] [stderr]            866 |         match self.peek().cloned() {
[INFO] [stderr]                |                           ^^^^^^ the trait `Clone` is not implemented for `Token`
[INFO] [stderr]                |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Clone)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Clone)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/parser.rs:874:76
[INFO] [stderr]                |
[INFO] [stderr]            874 |                     message: format!("expected `TaskBrief` after `:`, got `{got:?}`"),
[INFO] [stderr]                |                                                                            ^^^^^^^ `Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                |
[INFO] [stderr]                = help: the trait `Debug` is not implemented for `Token`
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]                = note: required for `std::option::Option<Token>` to implement `Debug`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Debug)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:884:35
[INFO] [stderr]                |
[INFO] [stderr]            884 |         let uses = if self.peek() == Some(&Token::Uses) {
[INFO] [stderr]                |                       ----------- ^^ ------------------ std::option::Option<&Token>
[INFO] [stderr]                |                       |
[INFO] [stderr]                |                       std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]               --> briefc/src/parser.rs:905:27
[INFO] [stderr]                |
[INFO] [stderr]            905 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                |               ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                |               |
[INFO] [stderr]                |               std::option::Option<&Token>
[INFO] [stderr]                |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 | pub enum Token {
[INFO] [stderr]                | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(PartialEq)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token: Clone` is not satisfied
[INFO] [stderr]               --> briefc/src/parser.rs:907:31
[INFO] [stderr]                |
[INFO] [stderr]            907 |             match self.peek().cloned() {
[INFO] [stderr]                |                               ^^^^^^ the trait `Clone` is not implemented for `Token`
[INFO] [stderr]                |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Clone)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Clone)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/parser.rs:940:93
[INFO] [stderr]                |
[INFO] [stderr]            940 | ...                   message: format!("expected `=` or `{{` after `extras`, got `{got:?}`"),
[INFO] [stderr]                |                                                                                   ^^^^^^^ `Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                |
[INFO] [stderr]                = help: the trait `Debug` is not implemented for `Token`
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]                = note: required for `&Token` to implement `Debug`
[INFO] [stderr]                = note: 1 redundant requirement hidden
[INFO] [stderr]                = note: required for `std::option::Option<&Token>` to implement `Debug`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Debug)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `Token` doesn't implement `Debug`
[INFO] [stderr]               --> briefc/src/parser.rs:959:88
[INFO] [stderr]                |
[INFO] [stderr]            959 | ...                   message: format!("expected `{{` after `provides`, got `{got:?}`"),
[INFO] [stderr]                |                                                                              ^^^^^^^ `Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                |
[INFO] [stderr]                = help: the trait `Debug` is not implemented for `Token`
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]               --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]                = note: required for `&Token` to implement `Debug`
[INFO] [stderr]                = note: 1 redundant requirement hidden
[INFO] [stderr]                = note: required for `std::option::Option<&Token>` to implement `Debug`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Debug)]`
[INFO] [stderr]               --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                |
[INFO] [stderr]             30 + #[derive(Debug)]
[INFO] [stderr]             31 | pub enum Token {
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `Token` doesn't implement `Debug`
[INFO] [stderr]                --> briefc/src/parser.rs:1011:61
[INFO] [stderr]                 |
[INFO] [stderr]            1011 |                         message: format!("unexpected token `{got:?}` inside task body"),
[INFO] [stderr]                 |                                                             ^^^^^^^ `Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                 |
[INFO] [stderr]                 = help: the trait `Debug` is not implemented for `Token`
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]                 = note: required for `std::option::Option<Token>` to implement `Debug`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Debug)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Debug)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1019:54
[INFO] [stderr]                 |
[INFO] [stderr]            1019 |             if self.pos == pos_before && self.peek() != Some(&Token::RBrace) {
[INFO] [stderr]                 |                                          ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                 |                                          |
[INFO] [stderr]                 |                                          std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1054:27
[INFO] [stderr]                 |
[INFO] [stderr]            1054 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                 |               ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token: Clone` is not satisfied
[INFO] [stderr]                --> briefc/src/parser.rs:1056:31
[INFO] [stderr]                 |
[INFO] [stderr]            1056 |             match self.peek().cloned() {
[INFO] [stderr]                 |                               ^^^^^^ the trait `Clone` is not implemented for `Token`
[INFO] [stderr]                 |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Clone)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Clone)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1077:28
[INFO] [stderr]                 |
[INFO] [stderr]            1077 |             if self.peek() == Some(&Token::Comma) { self.advance(); }
[INFO] [stderr]                 |                ----------- ^^ ------------------- std::option::Option<&Token>
[INFO] [stderr]                 |                |
[INFO] [stderr]                 |                std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1091:27
[INFO] [stderr]                 |
[INFO] [stderr]            1091 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                 |               ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token: Clone` is not satisfied
[INFO] [stderr]                --> briefc/src/parser.rs:1093:31
[INFO] [stderr]                 |
[INFO] [stderr]            1093 |             match self.peek().cloned() {
[INFO] [stderr]                 |                               ^^^^^^ the trait `Clone` is not implemented for `Token`
[INFO] [stderr]                 |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Clone)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Clone)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1108:28
[INFO] [stderr]                 |
[INFO] [stderr]            1108 |             if self.peek() == Some(&Token::Comma) { self.advance(); }
[INFO] [stderr]                 |                ----------- ^^ ------------------- std::option::Option<&Token>
[INFO] [stderr]                 |                |
[INFO] [stderr]                 |                std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1122:27
[INFO] [stderr]                 |
[INFO] [stderr]            1122 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                 |               ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token: Clone` is not satisfied
[INFO] [stderr]                --> briefc/src/parser.rs:1126:43
[INFO] [stderr]                 |
[INFO] [stderr]            1126 |             let skill = match self.peek().cloned() {
[INFO] [stderr]                 |                                           ^^^^^^ the trait `Clone` is not implemented for `Token`
[INFO] [stderr]                 |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Clone)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Clone)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1132:28
[INFO] [stderr]                 |
[INFO] [stderr]            1132 |             if self.peek() != Some(&Token::Dot) {
[INFO] [stderr]                 |                ----------- ^^ ----------------- std::option::Option<&Token>
[INFO] [stderr]                 |                |
[INFO] [stderr]                 |                std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token: Clone` is not satisfied
[INFO] [stderr]                --> briefc/src/parser.rs:1138:42
[INFO] [stderr]                 |
[INFO] [stderr]            1138 |             let func = match self.peek().cloned() {
[INFO] [stderr]                 |                                          ^^^^^^ the trait `Clone` is not implemented for `Token`
[INFO] [stderr]                 |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Clone)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Clone)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1157:28
[INFO] [stderr]                 |
[INFO] [stderr]            1157 |             if self.peek() == Some(&Token::LParen) {
[INFO] [stderr]                 |                ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                 |                |
[INFO] [stderr]                 |                std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1159:35
[INFO] [stderr]                 |
[INFO] [stderr]            1159 |                 while self.peek() != Some(&Token::RParen) && !self.at_end() {
[INFO] [stderr]                 |                       ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                 |                       |
[INFO] [stderr]                 |                       std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token: Clone` is not satisfied
[INFO] [stderr]                --> briefc/src/parser.rs:1161:49
[INFO] [stderr]                 |
[INFO] [stderr]            1161 |                     let key = match self.peek().cloned() {
[INFO] [stderr]                 |                                                 ^^^^^^ the trait `Clone` is not implemented for `Token`
[INFO] [stderr]                 |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Clone)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Clone)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1165:36
[INFO] [stderr]                 |
[INFO] [stderr]            1165 |                     if self.peek() != Some(&Token::Eq) {
[INFO] [stderr]                 |                        ----------- ^^ ---------------- std::option::Option<&Token>
[INFO] [stderr]                 |                        |
[INFO] [stderr]                 |                        std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token: Clone` is not satisfied
[INFO] [stderr]                --> briefc/src/parser.rs:1171:49
[INFO] [stderr]                 |
[INFO] [stderr]            1171 |                     let pat = match self.peek().cloned() {
[INFO] [stderr]                 |                                                 ^^^^^^ the trait `Clone` is not implemented for `Token`
[INFO] [stderr]                 |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Clone)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Clone)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1202:36
[INFO] [stderr]                 |
[INFO] [stderr]            1202 |                     if self.peek() == Some(&Token::Comma) { self.advance(); }
[INFO] [stderr]                 |                        ----------- ^^ ------------------- std::option::Option<&Token>
[INFO] [stderr]                 |                        |
[INFO] [stderr]                 |                        std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1210:28
[INFO] [stderr]                 |
[INFO] [stderr]            1210 |             if self.peek() == Some(&Token::Comma) { self.advance(); }
[INFO] [stderr]                 |                ----------- ^^ ------------------- std::option::Option<&Token>
[INFO] [stderr]                 |                |
[INFO] [stderr]                 |                std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1224:27
[INFO] [stderr]                 |
[INFO] [stderr]            1224 |         while self.peek() != Some(&Token::RBracket) && !self.at_end() {
[INFO] [stderr]                 |               ----------- ^^ ---------------------- std::option::Option<&Token>
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1237:28
[INFO] [stderr]                 |
[INFO] [stderr]            1237 |             if self.peek() == Some(&Token::Comma) {
[INFO] [stderr]                 |                ----------- ^^ ------------------- std::option::Option<&Token>
[INFO] [stderr]                 |                |
[INFO] [stderr]                 |                std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1254:27
[INFO] [stderr]                 |
[INFO] [stderr]            1254 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                 |               ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1272:28
[INFO] [stderr]                 |
[INFO] [stderr]            1272 |             if self.peek() == Some(&Token::Comma) {
[INFO] [stderr]                 |                ----------- ^^ ------------------- std::option::Option<&Token>
[INFO] [stderr]                 |                |
[INFO] [stderr]                 |                std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1316:40
[INFO] [stderr]                 |
[INFO] [stderr]            1316 |                         if self.peek() == Some(&Token::Semi) {
[INFO] [stderr]                 |                            ----------- ^^ ------------------ std::option::Option<&Token>
[INFO] [stderr]                 |                            |
[INFO] [stderr]                 |                            std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1336:40
[INFO] [stderr]                 |
[INFO] [stderr]            1336 |                         if self.peek() == Some(&Token::Semi) {
[INFO] [stderr]                 |                            ----------- ^^ ------------------ std::option::Option<&Token>
[INFO] [stderr]                 |                            |
[INFO] [stderr]                 |                            std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1381:27
[INFO] [stderr]                 |
[INFO] [stderr]            1381 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                 |               ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1409:27
[INFO] [stderr]                 |
[INFO] [stderr]            1409 |         while self.peek() == Some(&Token::At) {
[INFO] [stderr]                 |               ----------- ^^ ---------------- std::option::Option<&Token>
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token: Clone` is not satisfied
[INFO] [stderr]                --> briefc/src/parser.rs:1415:27
[INFO] [stderr]                 |
[INFO] [stderr]            1415 |         match self.peek().cloned() {
[INFO] [stderr]                 |                           ^^^^^^ the trait `Clone` is not implemented for `Token`
[INFO] [stderr]                 |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Clone)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Clone)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token: Clone` is not satisfied
[INFO] [stderr]                --> briefc/src/parser.rs:1445:27
[INFO] [stderr]                 |
[INFO] [stderr]            1445 |         match self.peek().cloned() {
[INFO] [stderr]                 |                           ^^^^^^ the trait `Clone` is not implemented for `Token`
[INFO] [stderr]                 |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Clone)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Clone)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1452:32
[INFO] [stderr]                 |
[INFO] [stderr]            1452 |                 if self.peek() == Some(&Token::LParen) {
[INFO] [stderr]                 |                    ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                 |                    |
[INFO] [stderr]                 |                    std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `Token` doesn't implement `Debug`
[INFO] [stderr]                --> briefc/src/parser.rs:1465:68
[INFO] [stderr]                 |
[INFO] [stderr]            1465 |                     message: format!("expected match pattern, got `{got:?}`"),
[INFO] [stderr]                 |                                                                    ^^^^^^^ `Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                 |
[INFO] [stderr]                 = help: the trait `Debug` is not implemented for `Token`
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]                 = note: required for `std::option::Option<Token>` to implement `Debug`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Debug)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Debug)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1480:27
[INFO] [stderr]                 |
[INFO] [stderr]            1480 |         while self.peek() != Some(&Token::RBrace) && !self.at_end() {
[INFO] [stderr]                 |               ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: the trait bound `Token: Clone` is not satisfied
[INFO] [stderr]                --> briefc/src/parser.rs:1522:27
[INFO] [stderr]                 |
[INFO] [stderr]            1522 |         match self.peek().cloned() {
[INFO] [stderr]                 |                           ^^^^^^ the trait `Clone` is not implemented for `Token`
[INFO] [stderr]                 |
[INFO] [stderr]            note: required by a bound in `std::option::Option::<&T>::cloned`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:2159:4
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Clone)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Clone)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1533:32
[INFO] [stderr]                 |
[INFO] [stderr]            1533 |                 if self.peek() == Some(&Token::LAngle) {
[INFO] [stderr]                 |                    ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                 |                    |
[INFO] [stderr]                 |                    std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1535:39
[INFO] [stderr]                 |
[INFO] [stderr]            1535 |                     while self.peek() != Some(&Token::RAngle) && !self.at_end() {
[INFO] [stderr]                 |                           ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                 |                           |
[INFO] [stderr]                 |                           std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1543:48
[INFO] [stderr]                 |
[INFO] [stderr]            1543 |                 let propagate = if self.peek() == Some(&Token::Question) {
[INFO] [stderr]                 |                                    ----------- ^^ ---------------------- std::option::Option<&Token>
[INFO] [stderr]                 |                                    |
[INFO] [stderr]                 |                                    std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1574:32
[INFO] [stderr]                 |
[INFO] [stderr]            1574 |                 if self.peek() == Some(&Token::Dot) {
[INFO] [stderr]                 |                    ----------- ^^ ----------------- std::option::Option<&Token>
[INFO] [stderr]                 |                    |
[INFO] [stderr]                 |                    std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1588:47
[INFO] [stderr]                 |
[INFO] [stderr]            1588 |                     let args = if self.peek() == Some(&Token::LParen) {
[INFO] [stderr]                 |                                   ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                 |                                   |
[INFO] [stderr]                 |                                   std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]   --> briefc/src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | mod gen;
[INFO] [stdout]    |     ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout]    = note: `--force-warn keyword-idents-2024` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> briefc/src/main.rs:407:22
[INFO] [stdout]     |
[INFO] [stdout] 407 |             let ok = gen::gen(&description, output.as_deref(), force);
[INFO] [stdout]     |                      ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]    --> briefc/src/main.rs:407:27
[INFO] [stdout]     |
[INFO] [stdout] 407 |             let ok = gen::gen(&description, output.as_deref(), force);
[INFO] [stdout]     |                           ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `gen` is a keyword in the 2024 edition
[INFO] [stdout]   --> briefc/src/gen.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn gen(description: &str, output: Option<&Path>, force: bool) -> bool {
[INFO] [stdout]    |        ^^^ help: you can use a raw identifier to stay compatible: `r#gen`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl logos::internal::CallbackResult<'s, std::string::String, Token>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> briefc/src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos, Debug, PartialEq, Clone)]
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> briefc/src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos, Debug, PartialEq, Clone)]
[INFO] [stdout]    |          ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout]    = note: this warning originates in the derive macro `Logos` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos + use<'s>, Debug, PartialEq, Clone)]
[INFO] [stdout]    |                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl logos::internal::CallbackResult<'s, std::string::String, Token>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> briefc/src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos, Debug, PartialEq, Clone)]
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> briefc/src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos, Debug, PartialEq, Clone)]
[INFO] [stdout]    |          ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the derive macro `Logos` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos + use<'s>, Debug, PartialEq, Clone)]
[INFO] [stdout]    |                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl logos::internal::CallbackResult<'s, i64, Token>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> briefc/src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos, Debug, PartialEq, Clone)]
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> briefc/src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos, Debug, PartialEq, Clone)]
[INFO] [stdout]    |          ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the derive macro `Logos` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos + use<'s>, Debug, PartialEq, Clone)]
[INFO] [stdout]    |                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl logos::internal::CallbackResult<'s, std::string::String, Token>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> briefc/src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos, Debug, PartialEq, Clone)]
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> briefc/src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos, Debug, PartialEq, Clone)]
[INFO] [stdout]    |          ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the derive macro `Logos` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos + use<'s>, Debug, PartialEq, Clone)]
[INFO] [stdout]    |                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stdout] warning: `impl logos::internal::CallbackResult<'s, std::string::String, Token>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> briefc/src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos, Debug, PartialEq, Clone)]
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> briefc/src/lexer.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos, Debug, PartialEq, Clone)]
[INFO] [stdout]    |          ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: this warning originates in the derive macro `Logos` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Logos + use<'s>, Debug, PartialEq, Clone)]
[INFO] [stdout]    |                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1603:39
[INFO] [stderr]                 |
[INFO] [stderr]            1603 |                 } else if self.peek() == Some(&Token::LParen) {
[INFO] [stderr]                 |                           ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                 |                           |
[INFO] [stderr]                 |                           std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0277]: `Token` doesn't implement `Debug`
[INFO] [stderr]                --> briefc/src/parser.rs:1647:65
[INFO] [stderr]                 |
[INFO] [stderr]            1647 |                     message: format!("expected expression, got `{got:?}`"),
[INFO] [stderr]                 |                                                                 ^^^^^^^ `Token` cannot be formatted using `{:?}` because it doesn't implement `Debug`
[INFO] [stderr]                 |
[INFO] [stderr]                 = help: the trait `Debug` is not implemented for `Token`
[INFO] [stderr]            help: the trait `Debug` is implemented for `std::option::Option<T>`
[INFO] [stderr]                --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/option.rs:591:15
[INFO] [stderr]                 = note: required for `std::option::Option<Token>` to implement `Debug`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(Debug)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(Debug)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `!=` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1660:27
[INFO] [stderr]                 |
[INFO] [stderr]            1660 |         while self.peek() != Some(&Token::RParen) && !self.at_end() {
[INFO] [stderr]                 |               ----------- ^^ -------------------- std::option::Option<&Token>
[INFO] [stderr]                 |               |
[INFO] [stderr]                 |               std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0369]: binary operation `==` cannot be applied to type `std::option::Option<&Token>`
[INFO] [stderr]                --> briefc/src/parser.rs:1663:28
[INFO] [stderr]                 |
[INFO] [stderr]            1663 |             if self.peek() == Some(&Token::Comma) {
[INFO] [stderr]                 |                ----------- ^^ ------------------- std::option::Option<&Token>
[INFO] [stderr]                 |                |
[INFO] [stderr]                 |                std::option::Option<&Token>
[INFO] [stderr]                 |
[INFO] [stderr]            note: an implementation of `PartialEq` might be missing for `Token`
[INFO] [stderr]                --> briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 | pub enum Token {
[INFO] [stderr]                 | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stderr]            help: consider annotating `Token` with `#[derive(PartialEq)]`
[INFO] [stderr]                -->  briefc/src/lexer.rs:30:1
[INFO] [stderr]                 |
[INFO] [stderr]              30 + #[derive(PartialEq)]
[INFO] [stderr]              31 | pub enum Token {
[INFO] [stderr]                 |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 147 previous errors
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            Some errors have detailed explanations: E0277, E0369, E0599.
[INFO] [stderr]            
[INFO] [stderr]            For more information about an error, try `rustc --explain E0277`.
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 09s
[INFO] [stderr] crater-edition-check: briefc v1.0.0 (/opt/rustwide/workdir/briefc) updating edition from 2021 to 2024
[INFO] [stderr]     Checking briefc v1.0.0 (/opt/rustwide/workdir/briefc)
[INFO] [stdout] error: expected identifier, found reserved keyword `gen`
[INFO] [stdout]   --> briefc/src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | mod gen;
[INFO] [stdout]    |     ^^^ expected identifier, found reserved keyword
[INFO] [stdout]    |
[INFO] [stdout] help: escape `gen` to use it as an identifier
[INFO] [stdout]    |
[INFO] [stdout] 11 | mod r#gen;
[INFO] [stdout]    |     ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found reserved keyword `gen`
[INFO] [stdout]    --> briefc/src/main.rs:407:22
[INFO] [stdout]     |
[INFO] [stdout] 407 |             let ok = gen::gen(&description, output.as_deref(), force);
[INFO] [stdout]     |                      ^^^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found reserved keyword `gen`
[INFO] [stdout]   --> briefc/src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | mod gen;
[INFO] [stdout]    |     ^^^ expected identifier, found reserved keyword
[INFO] [stdout]    |
[INFO] [stdout] help: escape `gen` to use it as an identifier
[INFO] [stdout]    |
[INFO] [stdout] 11 | mod r#gen;
[INFO] [stdout]    |     ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found reserved keyword `gen`
[INFO] [stdout]    --> briefc/src/main.rs:407:22
[INFO] [stdout]     |
[INFO] [stdout] 407 |             let ok = gen::gen(&description, output.as_deref(), force);
[INFO] [stdout]     |                      ^^^ expected expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found reserved keyword `gen`
[INFO] [stdout]   --> briefc/src/gen.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn gen(description: &str, output: Option<&Path>, force: bool) -> bool {
[INFO] [stdout]    |        ^^^ expected identifier, found reserved keyword
[INFO] [stdout]    |
[INFO] [stdout] help: escape `gen` to use it as an identifier
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn r#gen(description: &str, output: Option<&Path>, force: bool) -> bool {
[INFO] [stdout]    |        ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found reserved keyword `gen`
[INFO] [stdout]   --> briefc/src/gen.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn gen(description: &str, output: Option<&Path>, force: bool) -> bool {
[INFO] [stdout]    |        ^^^ expected identifier, found reserved keyword
[INFO] [stdout]    |
[INFO] [stdout] help: escape `gen` to use it as an identifier
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn r#gen(description: &str, output: Option<&Path>, force: bool) -> bool {
[INFO] [stdout]    |        ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> briefc/src/skillsync.rs:9:23
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]    --> briefc/src/audit.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |     use std::io::Write;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]    --> briefc/src/policy_check.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |     use std::io::Write;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> briefc/src/skillsync.rs:9:23
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]    --> briefc/src/suggest.rs:329:9
[INFO] [stdout]     |
[INFO] [stdout] 329 |     use std::io::Write;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `env_vals`
[INFO] [stdout]   --> briefc/src/suggest.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let env_vals: Vec<(String, String)> = declared_needs.iter()
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_env_vals`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> briefc/src/verify.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |         let mut all_verified = needs_results;
[INFO] [stdout]    |             ----^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `briefc` (bin "brief") due to 3 previous errors; 3 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: cannot explicitly borrow within an implicitly-borrowing pattern
[INFO] [stdout]     --> briefc/src/parser.rs:1938:85
[INFO] [stdout]      |
[INFO] [stdout] 1938 | ...xpr::Call { receiver: Some(ref receiver), func, args, .. } if receiver == "user" && func == "name" && args.is_empty()));
[INFO] [stdout]      |                               ^^^ explicit `ref` binding modifier not allowed when implicitly borrowing
[INFO] [stdout]      |
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]     --> briefc/src/parser.rs:1938:57
[INFO] [stdout]      |
[INFO] [stdout] 1938 | ...(), Expr::Call { receiver: Some(ref receiver), func, args, .. } if receiver == "user" && func == "name" && args.is_empty()));
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this non-reference pattern matches on a reference type `&_`
[INFO] [stdout] help: remove the unnecessary binding modifier
[INFO] [stdout]      |
[INFO] [stdout] 1938 -                 assert!(matches!(arms[0].body.as_ref(), Expr::Call { receiver: Some(ref receiver), func, args, .. } if receiver == "user" && func == "name" && args.is_empty()));
[INFO] [stdout] 1938 +                 assert!(matches!(arms[0].body.as_ref(), Expr::Call { receiver: Some(receiver), func, args, .. } if receiver == "user" && func == "name" && args.is_empty()));
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `env_vals`
[INFO] [stdout]   --> briefc/src/suggest.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let env_vals: Vec<(String, String)> = declared_needs.iter()
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_env_vals`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> briefc/src/verify.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |         let mut all_verified = needs_results;
[INFO] [stdout]    |             ----^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `briefc` (bin "brief" test) due to 4 previous errors; 6 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "6bad47f367200c8345b3b19a05350d1b350bfc5b95af92eab5783f90de532cb0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6bad47f367200c8345b3b19a05350d1b350bfc5b95af92eab5783f90de532cb0", kill_on_drop: false }`
[INFO] [stdout] 6bad47f367200c8345b3b19a05350d1b350bfc5b95af92eab5783f90de532cb0
